unsigned int mapped : 1;
unsigned int pending_commit : 1;
unsigned int awaiting_frame : 1;
+ unsigned int awaiting_frame_frozen : 1;
GdkSurfaceTypeHint hint;
GdkSurface *transient_for;
GdkSurface *popup_parent;
return;
impl->awaiting_frame = FALSE;
- gdk_surface_thaw_updates (surface);
+ if (impl->awaiting_frame_frozen)
+ {
+ impl->awaiting_frame_frozen = FALSE;
+ gdk_surface_thaw_updates (surface);
+ }
timings = gdk_frame_clock_get_timings (clock, impl->pending_frame_counter);
impl->pending_frame_counter = 0;
if (impl->awaiting_frame &&
impl->pending_frame_counter == gdk_frame_clock_get_frame_counter (clock))
- gdk_surface_freeze_updates (surface);
+ {
+ impl->awaiting_frame_frozen = TRUE;
+ gdk_surface_freeze_updates (surface);
+ }
}
void
impl->initial_configure_received = FALSE;
}
- if (impl->awaiting_frame)
+ impl->awaiting_frame = FALSE;
+ if (impl->awaiting_frame_frozen)
{
- impl->awaiting_frame = FALSE;
+ impl->awaiting_frame_frozen = FALSE;
gdk_surface_thaw_updates (surface);
}